![参照専用の権限を持つIAMユーザの作成](https://devio2023-media.developers.io/wp-content/uploads/2014/05/IAM.png)
参照専用の権限を持つIAMユーザの作成
渡辺です。
IAMユーザに不必要な管理者権限を付けていませんか? リソースの確認依頼などを行う時、不用意に強い権限を持ったIAMユーザを発行すると、それ自体がセキュリティリスクとなります。 可能であれば、 必要最小限の権限を与えるべき でしょう。 特に、リソースの削除やIAM関連の作成権限は、事故が起きたときの被害が計り知れません。
今回は、必要最小限の権限を持ったIAMユーザ作成のコツを解説します。
IAMユーザの作成
はじめにIAMユーザを作成します。
マネジメントコンソールを開き、サービスメニューからIAMを開きます。
ダッシュボードから「ユーザ」メニューを開き、「ユーザを追加」をクリックします。
ユーザ名(readonly_user)を入力し、アクセスの種類で「AWSマネジメントコンソールへのアクセス」を選択します。
アクセス権限では「既存のポリシーを直接アタッチ」を選択し、ReadOnlyAccess
にチェックを入れてください。
フィルターで「ReadOnly」などと入力して絞り込むと良いでしょう。
確認ができたならば「ユーザの作成」をクリックします。
最後にログイン用のURLと生成された(指定した)パスワードを確認できます。 担当者にこれらの情報を送ってください。
ReadOnlyAccessで権限が足りない場合
管理ポリシーであるReadOnlyAccess
は、ほとんどのリソースを参照できます。
しかし、一部のリソースを操作する場合、ReadOnlyAccess
では権限不足になることがあります。
例えば、S3からファイルを取得する場合や、CloudWatch Logsのログを閲覧するようなケースです。
リソースのダウンロードを伴う操作は「書き込み」扱いとされている場合があるからです。
そのような場合は、ユーザの権限にインラインポリシーを追加します。 インラインポリシーではサービスの操作単位で、細かく権限を設定できます。
ユーザメニューから対象のユーザを選択し、権限タブから「インラインポリシーの追加」をクリックします。
インラインポリシーは、JSON形式で設定しますが、ビジュアルエディタを使えば簡単に設定できます。
はじめに追加する権限のサービスを選択します。
ここでは「connect」でフィルターをかけ、Amazon Connectを選択しました。
次に、許可するアクションを選択します。 リスト・読込・書込にわけてアクションが分類されているので、必要なアクションを選びましょう。
権限が足りない場合は、後からでも追加可能です。
次に、許可対象のインスタンスを選択します。 ここで、特定のインスタンスのみに権限を与えることができます。 アクションは絞ってもインスタンスは絞らないならば、「すべて」を選択すればOKです。
最後にポリシーの名前を付けましょう。
これでインラインポリシーが作成されました。 作成されたポリシードキュメント(JSON)を確認してください。 慣れてきたならば、このJSONを直接編集しても良いでしょう。
まとめ
参照用の権限を持ったIAMユーザを作成する場合、はじめにReadOnlyAccess
を試してください。
ReadOnlyAccess
で権限が不足している場合、 一部のサービスに限定して参照権限を与えたい場合などはインラインポリシーが便利です。
くれぐれもAdministrator
を与えないようにしましょう。
なお、相手もAWSアカウントを持っているならば、権限を委譲するIAMロールを作成しても良いでしょう。 権限の与え方は同様です。